home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / Data.cab / _E8EB174EA6AC4B19976A2573E70B8BD5 < prev    next >
Encoding:
Text File  |  2004-04-01  |  1.8 KB  |  75 lines

  1.  
  2. regc( 0, "TFACTOR" )
  3. regc4f( 3, %dirtcolor_r, %dirtcolor_g, %dirtcolor_b, 0.0 )
  4. regc4f( 4, %dirtsnow, %dirtgravel, %dirtmud, 0.0 )
  5. regc4f( 5, %daycolor_r, %daycolor_g, %daycolor_b, %daycolor_a )
  6. regc4f( 6, %ambient_r, %ambient_g, %ambient_b, %ambient_a )
  7.  
  8. pshader("
  9.  
  10. ps_1_4
  11.  
  12. #include <cardef.h>
  13.  
  14. #define    DirtLevel    c0.a
  15. #define DirtColor    c3
  16. #define    DirtType    c4
  17. #define    DayColor    c5
  18.  
  19. #define    Diffuse        v0.a
  20. #define SpotDiffuse v0
  21. #define Specular    v1
  22. #define Fresnel        v1.a
  23. #define Ambient     c6
  24. #define ReflStrength c0.b
  25.  
  26.     def     c7, 1, 0, SHADOWSMUL, SOFTSHADOWS
  27.     def        c2, 0.13, 0.33, 0.43, 1.0
  28. texld r1, t0      ;Dirt
  29. texld r2, t2      ;ColorMap
  30. texld r3, t3    ; Clouds
  31. texld r4, t4    ; Cubemap
  32.  
  33.     dp3_sat    r1.rgb, DirtType, r1
  34.  
  35.     mul_sat r1, r1.b, DirtLevel           ; dirtmask
  36.  
  37.     mad_x2_sat r2, r2.a, 1-r3.a, c7.a      ;  shadows  + SOFTSHADOWS
  38.  
  39.     mul r4, r4, 1-r1
  40.  
  41. phase
  42. texld r0, t0
  43. // r1 - dirtmask
  44. // r2 - shadows (przemnoza przez 2(SHADOWSMUL))
  45. // r3 - empty
  46. // r4 - Cubemap*dirtmask
  47. texld r5, t0    ; broken
  48.  
  49.     lrp r0.rgb, r1.b, DirtColor, r0
  50.     +mul    r1.a, r2.b, Diffuse
  51.  
  52.     add r0.rgb, r0, r5
  53.     +mul r4.a, Fresnel, 1-r1.b           ; cubemap mask   (+ReflStrength wywalone)
  54.  
  55.     mul r4.rgb, r4, r4.a                ; cubemap
  56.     +mul_sat r3.a, 1-r1.b, r2.b        ; final specular mask
  57.  
  58.     mad r3.rgb, r3.a, Specular, r4                ; specular+cubemap
  59.     +mad_sat    r1.a, r1.a, Ambient.b, Ambient.a    ; final diffuse
  60.  
  61.     mad_sat r3.rgb, r0, r1.a, r3        ;   color*diffuse+specular+cubemap
  62.  
  63.     dp3_sat r4.rgb, c2, r3          ; lum
  64.     +lrp r0.a, r1.b, c7.r, r0.a
  65. #if VS_SPOTLIGHTS
  66.     mul r1, r0, SpotDiffuse
  67.     mad r0.rgb, r3, DayColor, r1
  68.     +add_sat r0.a, r0.a , r4.b
  69. #else
  70.     mul r0.rgb, r3, DayColor
  71.     +add_sat r0.a, r0.a , r4.b
  72. #endif
  73. ")
  74.  
  75.